/*
 * DAO<T>.java
 * 
 * Versao: 1.0.0
 *
 * Data: 06/04/2011
 *
 * Copyright (C) 2011
 * wsh-systems.
 * Todos os direitos reservados.
 */
package com.wsh.playeronline.persistence.dao;

import java.util.List;

/**
 * Interface in the methods default: insert, delete, update e search.
 * 
 * @author washington
 * @version 1.0, 06/04/2011
 *
 * @param <T>
 */
public interface DAO<T> {

	/**
	 * Responsavel por adicionar os objetos no banco.
	 * 
	 * @param t the object
	 */
	void adiciona(T t);
	
	/**
	 * Responsavel por deletar o objeto no banco.
	 * 
	 * @param t the object
	 */
	void deleta(T t);
	
	/**
	 * Responsavel por buscar o objeto no banco conforme o codigo.
	 * 
	 * @param codigo codigo
	 * @return T the object
	 */
	T busca(Long codigo);
	
	/**
	 * Responsavel por listar os objetos do banco.
	 * 
	 * @return List<T>
	 */
	List<T> lista();
	
	/**
	 * Responsavel por alterar o objeto no banco.
	 * 
	 * @param t the object
	 */
	void altera(T t);
	
	/**
	 * Responsavel por alterar o objeto no banco.
	 * 
	 * @param t the object
	 */
	void remove(T t);
	
}